/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bean;

import DAO.PDFDao;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.Serializable;
import java.util.ArrayList;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;

/**
 *
 * @author fernando
 */
public class TrabalhoGestaoSocial implements Serializable{
    private Instituicao instituicao;
    private int id;
    private String titulo;
    private ArrayList<Autor> autores;
    private String tipologia;
    private String objetivoAvaliacao;
    private String tiposDeAvaliacao;
    private String resumo;
    private String descricaoMetodologia;
    private String outrasObservacoes;
    private ArrayList<Tema> palavrasChave;
    private String link;
    private String textoOndeEncontrar;
    private PDF pdf;
    private StreamedContent file;

    public TrabalhoGestaoSocial() {
        this.instituicao = new Instituicao();
        this.autores = new ArrayList<Autor>();
        this.palavrasChave = new ArrayList<Tema>();
        this.pdf = new PDF();
    }

    
    
    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public ArrayList<Autor> getAutores() {
        return autores;
    }

    public void setAutores(ArrayList<Autor> autores) {
        this.autores = autores;
    }

    public String getTipologia() {
        return tipologia;
    }

    public void setTipologia(String tipologia) {
        this.tipologia = tipologia;
    }

    public String getObjetivoAvaliacao() {
        return objetivoAvaliacao;
    }

    public void setObjetivoAvaliacao(String objetivoAvaliacao) {
        this.objetivoAvaliacao = objetivoAvaliacao;
    }

    public String getTiposDeAvaliacao() {
        return tiposDeAvaliacao;
    }

    public void setTiposDeAvaliacao(String tiposDeAvaliacao) {
        this.tiposDeAvaliacao = tiposDeAvaliacao;
    }

    public String getResumo() {
        return resumo;
    }

    public void setResumo(String resumo) {
        this.resumo = resumo;
    }

    public String getDescricaoMetodologia() {
        return descricaoMetodologia;
    }

    public void setDescricaoMetodologia(String descricaoMetodologia) {
        this.descricaoMetodologia = descricaoMetodologia;
    }

    public String getOutrasObservacoes() {
        return outrasObservacoes;
    }

    public void setOutrasObservacoes(String outrasObservacoes) {
        this.outrasObservacoes = outrasObservacoes;
    }

    public ArrayList<Tema> getPalavrasChave() {
        return palavrasChave;
    }

    public void setPalavrasChave(ArrayList<Tema> palavrasChave) {
        this.palavrasChave = palavrasChave;
    }

    public String getLink() {
        return link;
    }

    public void setLink(String link) {
        this.link = link;
    }

    public String getTextoOndeEncontrar() {
        return textoOndeEncontrar;
    }

    public void setTextoOndeEncontrar(String textoOndeEncontrar) {
        this.textoOndeEncontrar = textoOndeEncontrar;
    }

    public PDF getPdf() {
        return pdf;
    }

    public void setPdf(PDF pdf) {
        this.pdf = pdf;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Instituicao getInstituicao() {
        return instituicao;
    }

    public void setInstituicao(Instituicao instituicao) {
        this.instituicao = instituicao;
    }

    public StreamedContent getFile() {
        
        pdf = new PDFDao().consultarPDF(pdf.getId());
        InputStream stream = new ByteArrayInputStream(pdf.getConteudo());
        file = new DefaultStreamedContent(stream, "pdf", pdf.getId() + pdf.getNome() + ".pdf");
        return file;
    }

    public void setFile(StreamedContent file) {
        this.file = file;
    }
    
    
    
    
}
